There is an increasing demand for automatic scheduling of batch processing tasks. In particular, users of online services (e.g., cloud-based services or applications) can submit large amounts of requests every day to the servers of the online services. The online services generally offer levels of service including soft or hard guarantees on when to finish the users' tasks and to provide results to the users. However, with an increasing number of subscribers signing up for an online service, the current computational capacity of the online service may not be able to handle the submitted tasks within a planned time frame. In other words, due to the cost control or system scalability limits, the demands of the batch processing tasks exceed the available capacity of the service.